Configuring the System

After initializing a Data ONTAP 10.0 system, perform the following steps to create a basic configuration. This example is for a mixed NFS and CIFS environment.

  1. For each node in the cluster, perform the following steps:

    1. Connect to the node by using Secure Shell (SSH) or Telnet.

    2. The node displays a login prompt. Enter the user name admin and an empty password (that is, press Enter at the Password: prompt). The system then displays the following prompt:

      node::>

      where node is the hostname of the node.

    3. Enter the storage aggregate show command to verify that the initialization process created a storage aggregate:

      node::> storage aggregate show
      Aggregate Size(MB) Used%    State  #Vols  Node(s)   RAID Type   RAID Status  
      aggr0     116262     97%    online    1   node1a    raid_dp     raid_dp
      

      Note:

      The CLI provides tab completion for commands and parameters. For example, instead of typing storage aggregate show in full, you can type stoTab aggTab shTab. See “Using the Command Line Interface” for details.

    4. Enter the storage aggregate rename to rename the storage aggregate and prevent naming conflicts with aggregates on other nodes in the cluster. An aggregate name can consist of alphanumeric characters and the underscore (_). After you rename the aggregate, run the storage aggregate show again to verify the name change.

      node::> storage aggregate rename -aggregate aggr0
      -newname node1a_aggr0
      node::> storage aggregate show
      Aggregate Size(MB) Used%   State  #Vols  Node      RAID Type   RAID Status  
      node1a_aggr0
                116262     97%   online     1   node1a    raid_dp     raid_dp
      
    5. Set the date, time, and time zone on the node by using the node date modify command. The following example sets the time zone to Etc/UTC, the date to 1 May 2006, and the time to 9:00 a.m. on a node named node1a:

      node::> node date modify -node node1a -timezone Etc/UTC
      -date "05/01/2006 09:00:00"

      For more information on the node date commands, see “Setting the Time Zone, Date, and Time on a Node”.

    6. Add the node to a cluster by one of the following methods:

      1. If this is the first node in the cluster, enter the cluster create command to create a cluster. The following example creates a cluster. The cluster's base license is ABCDEFG (obtain licenses for your cluster from your sales or support representative). The cluster is named clus1. The node's first cluster port has the IP address 10.29.127.0, the netmask 255.255.240.0, and the MTU setting 9000. The node's second cluster port has the IP address 10.29.127.1 and the same netmask and MTU setting as the first cluster port.

        node::> cluster create -license ABCDEFG
        -clustername clus1 -ipaddr1 10.29.127.0
        -netmask1 255.255.240.0 -mtu1 9000 -ipaddr2 10.29.127.1
        -netmask2 255.255.240.0 -mtu2 9000
        
      2. If this is not the first node in the cluster, enter the cluster join command to join the node to the existing cluster. In the following example, another node is added to the cluster created in the previous example; the -clusteripaddr parameter specifies the IP address of a cluster port of a node that is already a member of the cluster; in this case, the IP address 10.29.127.0 is used. The IP address of node1b's first cluster port is 10.29.127.2, its netmask is 255.255.240.0, and its MTU setting is 9000. The IP address of its second cluster port is 10.29.127.3, with the same netmask and MTU setting as the first cluster port.

        node::> cluster join -clusteripaddr 10.29.127.0 -ipaddr1 10.29.127.2
        -netmask1 255.255.240.0 -mtu1 9000 -ipaddr2 10.29.127.3
        -netmask2 255.255.240.0 -mtu2 9000
      3. After you have added the nodes into the cluster, enter the cluster show command to verify the cluster information.

        node::> cluster show
        Node                 Health  Eligibility
        node1a                true    true
        

      For additional information about these commands, see “Clustering Tasks”.

    7. Enter the storage disk show command to determine which disks are connected to the node.

      node::> storage disk show
      Disk     UsedSize(MB)    Shelf Bay State     RAID Type  Aggr     Owner
      node1a:0c.16
                    135979     1     0   present   parity     node1a_  node1a
                                                              aggr0
      node1a:0c.17
                    135979     1     1   present   data       node1a_  node1a
                                                              aggr0
      node1a:0c.18
                    -          -     -   -         -          -        -
      node1a:0c.19
                    -          -     -   -         -          -        -
      node1a:0c.20
                    -          -     -   -         -          -        -
      node1a:0c.21
                    -          -     -   -         -          -        -
      node1a:0c.22
                    135979     1     6   present   data       node1a_  node1a
                                                              aggr0
      node1a:0c.23
                    -          -     -   -         -          -        -
      node1a:0c.24 
                    -          -     -   -         -          -        -
      node1a:0c.25
                    -          -     -   -         -          -        -
      node1a:0c.26
                    -          -     -   -         -          -        -
      node1a:0c.27
                    -          -     -   -         -          -        -
      node1a:0c.28
                    135979     1     12  spare     pending    -        node1a
      node1a:0c.29
                    -          -     -   -         -          -        -
      

      Typically, only three to four disks are owned and in a valid state; all other disks are unowned.

    8. Assign ownership of unowned disks by using the storage disk modify command. The following example assigns a disk named node1a:0c.18 to a node named node1a:

      node::> storage disk modify -disk node1a:0c18 -owner node1a

      Note:

      NetApp recommends that you assign half of the unassigned disks to one node in the failover pair and the other half to the other node in the failover pair. Assigning all disks to a single node prevents its failover partner from accessing the disks, rendering the failover partner unusable.

      See “Disk Naming Conventions” for information about disk names and “Modifying a Disk's Attributes” for information about the storage disk modify command.

  2. For each set of failover pairs, perform the following steps:

    1. On one node of each failover pair in the cluster, enable storage failover by using the storage failover modify command:

      node::> storage failover modify -node node_name -enabled true

      Enabling storage failover on one node of a failover pair automatically enables it on the partner node. See “Managing Storage Failover” for more information about storage failover.

    2. If your cluster consists of only two nodes, enable two-node high availability (HA) by using the cluster ha modify command:

      node::> cluster ha modify -configured true

      See “Configuring High Availability in a Two-Node Cluster” for more information on HA mode.

    The following steps can be performed from any single node in the cluster.

  3. Enter any licenses for optional software packages, such as asynchronous mirroring:

    node::> license add -license-code license_code

    where license_code is the code for the purchased license. Run the command for each license you have purchased.

  4. If desired, enable and configure NTP for the cluster by using the system service ntp commands. The following examples enable NTP in the cluster and configure the node named node1a to use an NTP server named ntp1.example.com that uses NTP version 4:

    node::> system service ntp config modify -enabled true
    node::> system service ntp server new -node node1a 
    -server ntp1.example.com -version 4
  5. Create a storage aggregate to hold the virtual server's root volume by using the storage aggregate new command. Storage aggregate names must be unique in the cluster, and the number of disks specified cannot exceed the number of available spare disks. The following example creates a storage aggregate named node1a_aggr1 with 10 disks:

    node::> storage aggregate new -aggregate node1a_aggr1 -diskcount 10

    See “Aggregate Concepts” and “Creating a Storage Aggregate” for more information about storage aggregates.

  6. Create a virtual server by performing the following steps:

    1. Use the vserver new command to create a virtual server. The command creates both a virtual server and its root volume. The following example creates a virtual server named vs1 with a root volume named vs1_root on the storage aggregate named node1a_aggr1. NIS is used for network name inquiries, the default language used on the volume is U.S. English, and the volumes' security style is mixed (that is, it supports both NFS and CIFS).

      node::> vserver new -vserver vs1 -rootvolume vs1_root
      -aggregate node1a_aggr1 -ns-switch nis -language en_US
      -rootvolume-security-style mixed
    2. Verify the creation of the virtual server and its root volume by using the vserver show and volume show commands, respectively:

      node::> vserver show
      Virtual      Root          Aggregate  Name          NIS 
      Server Name  Volume Name              Service       Domain 
      vs1          vs1_root      node1a_   nis           -
                                 aggr1  
      
      node::> volume show
      Vserver   Volume      Aggregate    State      Type  Size     Available Used%
      ------------------------------------------------------------------------------
      vs1       vs1_root    node1a_aggr1 online     RW    100GB    79.99GB   0%
      

      See Chapter 7, Managing Virtual Servers for more information about virtual servers.

    3. Create an NIS-domain configuration by using the services nis-domain new command. The following example configures a virtual server named vs1 to use an NIS domain named example.com, which uses NIS servers that have the IP addresses 10.98.10.0 and 10.98.12.0.

      node::> services nis-domain new -vserver vs1 -domain example.com
      -active true -servers 10.98.l0.0,10.98.12.0
    4. Verify the NIS-domain configuration by using the services nis-domain show command:

      node::> services nis-domain show
      Virtual    Domain       Active    NIS
      Server     Name                   Server
      vs1        example.com  true      10.98.10.0,10.98.12.0
      

      See “Configuring an NIS-Domain Configuration” for more information about NIS-domain configurations.

    5. Verify that the virtual server is using the specified NIS domain by using the vserver show command:

      node::> vserver show
      Virtual      Root          Aggregate  Name          NIS 
      Server Name  Volume Name              Service       Domain 
      vs1          vs1_root      node1a_   nis           example.com
                                 aggr1  
      
  7. Create a volume to hold user data by performing the following steps:

    1. Use the volume new command to create a volume. The following example creates a volume named src on a virtual server named vs1 and a storage aggregate named node1a_aggr1. The volume is placed online upon its creation. The volume's export rule set is default_ruleset. The volume is owned by a user named admin and a group named eng. The security style on the volume is mixed (that is, it supports both NFS and CIFS). The volume's junction path is named src and is active upon the volume's creation. The volume's parent volume is vs1_root. The volume is 100 GB in size and uses the volume style of space guarantee. The volume uses the default snapshot policy.

      node::> volume new -vserver vs1 -volume src -state online
      -ruleset default_ruleset -user admin -group eng -security-style mixed
      -junction-path src -junction-active true -parent vs1_root -size 100g
      -space-guarantee volume -snapshot-policy default

      See Chapter 11, Managing Volumes for more information about volumes.

    2. Verify the creation of the volume by using the volume show command. The first example displays information about all volumes; the second example displays detailed information about the new volume.

      node::> volume show
                                                                   Files     MaxDir
      Vserver    Volume       State          Type  Size  Used%  Total Used   Size
      ------------------------------------------------------------------------------
      vs1        vs1_root     online         RW    20MB  0%     629   97     10MB
      vs1        src          online         RW    100GB 0%     629   97     10MB
      
      node::> volume show -vserver vs1 -volume src
                   Vserver Name: vs1
                    Volume Name: src
             Volume Data Set ID: 1129
      Volume Master Data Set ID: 2147484777
                 Aggregate Name: node1a_aggr1
                   Volume State: online
                    Volume Type: RW
           Export Rule Set Name: default_ruleset
                        User ID: admin
                       Group ID: eng
                 Security Style: mixed
                     Mount Path: src
           Is Mount Path Active: true
                  Parent Volume: vs1_root
                        Comment: 
                    Volume Size: 100GB
                 Available Size: 100GB
                      Used Size: 0
                    Total Files: 629
                     Files Used: 97
          Space Guarantee Style: volume
      Space Guarantee in Effect: true
                Snapshot Policy: default                                             
                  Creation Time: Fri Aug 26 18:26:13 2005
                   Force option: -
      
  8. Create a virtual interface for data and assign it to the virtual server by performing the following steps. For more information about network ports and virtual interfaces, see Chapter 4, Managing Network Ports and Chapter 8, Managing Virtual Interfaces.

    1. Verify that all network ports are properly configured by using the network port show command:

      node::> network port show
      Node   Port   Role     Link   MTU Auto Neg    Duplex     Speed (Mbps) Aggregate
                                        Admin/Oper  Admin/Oper Admin/Oper   Owner
      -------------------------------------------------------------------------------
      node1a
             e0a    cluster  up    9000 true/true  full/full   1000/1000   -
             e0b    cluster  up    9000 true/true  full/full   1000/1000   -
             e0c    data     up    9000 true/true  full/full   1000/1000   -
             e0d    data     up    9000 true/true  full/full   1000/1000   -
             e1a    mgmt     up    1500 true/true  full/full    100/100    -
             e1b    mgmt     down  1500 true/true  half/half     10/10     -
      node1b
             e0a    cluster  up    9000 true/true  full/full   1000/1000   -
             e0b    cluster  up    9000 true/true  full/full   1000/1000   -
             e0c    data     up    9000 true/true  full/full   1000/1000   -
             e0d    data     up    9000 true/true  full/full   1000/1000   -
             e1a    mgmt     up    1500 true/true  full/full    100/100    -
             e1b    mgmt     down  1500 true/true  half/half     10/10     -
      
    2. Create a virtual interface by using the network interface new command. The following example creates a virtual interface named vs1_data1 on a virtual server named vs1. The virtual interface serves data (that is, client access). The virtual interface's home node is named node1a and its home port is e0c. Its initial administrative status is set to up (that is, online). Its failover policy is nextavail (that is, if the physical port fails, the virtual interface migrates to the next available port). The virtual interface has the IP address 10.29.204.99 and the netmask 255.255.240.0.

      node::> network interface new -server vs1 -vif vs1_data1 -role data
      -home-node node1a -home-port e0c -status-admin up
      -failover-policy nextavail -address 10.29.204.99 -netmask 255.255.240.0
    3. Specify a static route for the virtual interface by using the network interface route new command. The following example creates a static route for the virtual interface named vs1_data1 on a virtual server named vs1. The static route uses the destination IP address 0.0.0.0, the netmask 0.0.0.0, and the gateway IP address 10.29.192.1.

      node::> network interface route new -server vs1 -vif vs1_data1
      -destination 0.0.0.0 -netmask 0.0.0.0 -gateway 10.29.192.1
    4. Verify the creation of the virtual interface and static route by using the network interface show and network interface route show commands, respectively.

      node::> network interface show
      Server      Virtual    Status     Network         Netmask         Is
                  Interface  Admin/Oper Address                         Home
      node1a
                  clus1        up/up    10.29.127.0     255.255.240.0   true
                  clus2        up/up    10.29.127.1     255.255.240.0   true
                  mgmt1        up/up    10.29.205.131   255.255.240.0   true
      node1b
                  clus1        up/up    10.29.127.2     255.255.240.0   true
                  clus2        up/up    10.29.127.3     255.255.240.0   true
                  mgmt1        up/up    10.29.205.129   255.255.240.0   true
      vs1
                  vs1_data1    up/up    10.29.204.99    255.255.240.0   true
      node::> network interface route show
      Server        Virtual         Destination     Netmask         Gateway
                    Interface 
      node1a
                    mgmt1           0.0.0.0         0.0.0.0         10.29.192.1
      node1b
                    mgmt1           0.0.0.0         0.0.0.0         10.29.192.1
      vs1
                    vs1_data1       0.0.0.0         0.0.0.0         10.29.192.1
      
  9. Perform the following steps to add an export rule to the default export rule set. For more information on export rules, see “Export-Rule Concepts”, “Creating an Export-Rule Set”, and “Adding a Rule to an Export Rule Set”.

    1. Use the protocol exportruleset rule new command to create an export rule to enable client access to data on the virtual server. The following example provides full access to all clients.

      node::> protocol exportruleset rule new -vserver vs1
      -rulesetname default_ruleset -clientmatch 0.0.0.0/0 -rorule any -rwrule any
      -superuser any -anon 0 -allow-suid true -allow-dev true
    2. Verify the creation of the export rule by using the protocol exportruleset rule show command:

      node::> protocol exportruleset rule show
      Virtual      Ruleset         Rule    Access   Client           RO        RW
      Server       Name            Index   Protocol Match            Rule      Rule
      vs1          default_ruleset 1       any      0.0.0.0/0        any       any
      
  10. Enable and configure NFS service on the virtual server by performing the following steps. See “NFS Concepts” and “Creating an NFS Configuration” for more information about NFS.

    1. Use the protocol nfs server new command to enable and configure NFS. The following example enables NFS access on a virtual server named vs1. NFS v2 and NFS v3 are both enabled over both TCP and UDP. SpinAuth authentication is enabled. A default Windows user named Administrator is specified.

      node::> protocol nfs server new -vserver vs1 -access true
      -v2-enable true -v3-enable true -udp-enable true -tcp-enable true
      -spinauth true -default-win-user Administrator
    2. Verify NFS service by using the protocol nfs server show command:

      node::> protocol nfs server show
      Virtual       Default               General Enable Enable Enable Enable
      Server        Windows User          Access  v2     v3     udp    tcp
      vs1           Administrator         true    true   true   true   true
      
  11. Enable and configure CIFS service by performing the following steps. For more information about CIFS, see “CIFS Concepts”, “Creating a CIFS Domain”, “Enabling CIFS on a Virtual Server”, “Creating a CIFS Share”, and “Creating a CIFS Superuser”.

    1. Create a valid computer account for the node on your CIFS domain controller. Include all trusted domains in the visible domain list. Use one of the following methods to create the node's account:

      • For Windows NT 4.0, use Server Manager.

      • For Windows 2000 and later, open the Active Directory, select New > Computer, add the node, and select the "Allow pre-Windows 2000 computers to use this account" check box.

    2. Create a CIFS domain by using the protocol cifs domain new command. The following example creates a CIFS domain with the NetBIOS name ENG that uses a WINS server with the IP address 10.98.16.1, a primary domain controller named RALPH with the IP address 10.98.16.1, and a backup domain controller named NELSON with the IP address 10.98.17.1.

      node::> protocol cifs domain new -domain ENG -wins-ip 10.98.16.1
      -dc1-name RALPH -dc1-ip 10.98.16.1 -dc2-name NELSON -dc2-ip 10.98.17.1
    3. Verify the creation of the CIFS domain by using the protocol cifs domain show command:

      node::> protocol cifs domain show
      Domain     WINS          Kerberos      DC         DC
      Name       IP            Config Name   Name       IP
      ENG        10.98.16.1    -             RALPH      10.98.16.1
      
    4. Enable and configure CIFS on the virtual server by using the protocol cifs server new command. The following example enables CIFS on a virtual server named vs1. The virtual server uses the NetBIOS name DATA to identify itself to CIFS clients and uses the CIFS domain named ENG. The virtual server uses the peer NetBIOS type to register its NetBIOS name, does not use Kerberos authentication for CIFS clients, and automatically updates its Machine Trust Account password.

      node::> protocol cifs server new -vserver vs1 -cifs-server DATA
      -domain ENG -broadcast disable -kerberos disable -password-update enable
    5. Verify the creation of the CIFS server by using the protocol cifs server show command:

      node::> protocol cifs server show
      Virtual       Domain         NetBIOS    Kerberos    Broadcast
      Server        Name           Name       Enabled     Enabled
      vs1           ENG            DATA       disable     disable
      
    6. Define a CIFS share that exports the root volume of the virtual server by using the protocol cifs share new command. The following example creates a share named share1 on a virtual server named vs1. The share's path is the root of the virtual server. The share is browsable.

      node::> protocol cifs share new -vserver vs1 -share-name share1
      -path / -share-properties browsable
    7. Verify the creation of the CIFS share by using the protocol cifs share show command:

      node::> protocol cifs share show
      Virtual   Share         Path              Share             Description   
      Server    Name                            Properties
      vs0       ADMIN$        /                 browsable         -
      vs0       IPC$          /                 browsable         -
      vs0       ROOTSHARE     /                 browsable         -
      vs1       ADMIN$        /                 browsable         -
      vs1       IPC$          /                 browsable         -
      vs1       ROOTSHARE     /                 oplocks           -
                                                browsable
      
    8. Define the Administrator account as a superuser for the CIFS configuration by using the protocol cifs superuser new:

      node::> protocol cifs superuser new -vserver vs1 -domain ENG
      -accountname Administrator
    9. Verify the creation of the superuser account by using the protocol cifs superuser show command:

      node::> protocol cifs superuser show
      Virtual       CIFS         Domain          Account
      Server        Server       Name            Name
      vs1           DATA         ENG             Administrator
      
  12. Create name mappings between UNIX and Windows accounts by performing the following steps. See “Name-Mapping Concepts” and “Creating a Name Mapping” for more information about these steps.

    1. Use the protocol name-mapping new command to create a name mapping that maps Windows account names in the form ENG\user_name to the UNIX form user_name:

      node::> protocol name-mapping new -vserver vs1 -type user
      -direction win-unix -position 1 -pattern ENG\\(.+) -replacement \1
    2. Create a name mapping that maps UNIX account names in the form user_name to the Windows form ENG\user_name:

      node::> protocol name-mapping new -vserver vs1 -type user
      -direction unix-win -position 1 -pattern (.+) -replacement ENG\\\1
    3. Verify the creation of the name mappings by using the protocol name-mapping show command:

      node::> protocol name-mapping show
       Virtual Mapping Direction Pos    Pattern        Replacement
       Server  Type
       vs1
               user    win-unix  1      ENG\\(.+)      \1
               user    unix-win  1      (.+)           ENG\\\1